In some conventional data processing systems, a source application instance (AI) can communicate with multiple destination AIs via an unreliable multicast service. An AI is herein defined to be a producer or a consumer of data in the data processing system. An AI can be implemented in software, hardware, or firmware, or in any combination of these. A unit of work is herein defined to be data which is transmitted between a source AI and a destination AI. Accordingly, a source AI is the producer of the unit of work sent to the destination AI. The destination AI is the consumer of the unit of work sent from the source AI.
A conventional unreliable multicast service is typically implemented by replicating a unit of work provided from the source AI with a replicater and transmitter component of an underlying communication services/fabric. For example, a switch or a router within the communication services/fabric is typically employed to replicate the unit of work provided from the source AI and to transmit the replicated unit of work to multiple destination AIs which are participating in a target multicast group. The conventional multicast service is designed as an unreliable transport service because of the functional and resource limitations of the traditional replicater and transmitter component. Thus, the conventional unreliable multicast service is only employed in applications which can tolerate unit of work loss, such as some types of multimedia applications. Applications which require reliability have to implement reliability features within the application itself because the reliability features are not implemented in the conventional multicast service.
For reasons stated above and for other reasons presented in greater detail in the Description of the Preferred Embodiments section of the present specification, there is a need for a reliable multicast service through which a source AI can reliably communicate with multiple destination AIs in data processing systems. The reliable multicast service should guarantee that the received order of units of work at each of the destination AIs in the multicast group is the same as the transmitted order of units of work from the source AI. In addition, the reliable multicast service should provide the same semantic behaviors as unreliable multicast services to permit existing applications employing conventional unreliable multicast services to employ the reliable multicast service without modifications to the existing application.